CSV merupakan ekstensi file berbasis pemisahan koma yang umumnya digunakan untuk memudahkan user pengguna suatu sistem informasi dalam melakukan import atau export pada suatu data. Didasari bentuk dasar yang simple yakni didasari pemisahan koma, CSV kini sangat kerap kita dengar dengan tujuan penggunaan web web atau aplikasi-aplikasi besar seperti import data pajak, upload data pajak, pegawai, gaji, dan lain-lain.
Bagi para pengembang sistem informasi tentu ini sangat sangat penting dan wajib untuk dikuasai apalagi untuk seorang developer sistem informasi. Comma Separated Value atau disingkat dengan CSV adalah format data yang bertujuan memudahkan penggunanya melakukan penginputan data ke database secara sederhana. Nah, pada kesempatan kali ini, SistemIT.com akan men-share sebuah tutorial untuk meng-export sebuah data pada database mysql yang ditampilkan melalui bahasa pemrograman php ke sebuah file berekstensi .CSV
Adapun langkah-langkah yang harus dilakukan adalah sebagai berikut :
1. Membuat Tabel
Langkah pertama yang harus dilakukan adalah membuat tabel karyawan. Buat database bernama tutorial_csv
lalu buat tabel bernama csv_karyawan seperti query berikut :
CREATE TABLE `csv_karyawan` ( `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, `nama` varchar(80) NOT NULL, `gaji` varchar(30) NOT NULL, `jenis_kelamin` varchar(10) NOT NULL, `kota` varchar(80) NOT NULL, `email` varchar(70) NOT NULL, `tanggal_bergabung` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `csv_karyawan` (`id`, `nama`, `gaji`, `jenis_kelamin`, `kota`, `email`, `tanggal_bergabung`) VALUES (1, 'Ujang', '1300000', 'L', 'Aceh', 'ujang123981xxx@sistemit.com', '2020-06-13'), (2, 'Ranti', '1900000', 'P', 'Aceh', 'sasdflsk@sistemit.com', '2020-06-13'), (3, 'Randi', '1500000', 'L', 'Balikpapan', 'randi1291@sistemit.com', '2020-06-13'), (4, 'Maria', '800000', 'P', 'Balikpapan', 'maria@sistemit.com', '2020-06-13');
2. Buat file config.php
Buat file bernama config.php untuk koneksi ke database. jangan lupa sesuaikan dengan nama database
<?php $host = "localhost"; /* Host name */ $user = "root"; /* User */ $password = ""; /* Password */ $dbname = "tutorial_csv"; /* Database name */ $con = mysqli_connect($host, $user, $password,$dbname); // Check connection if (!$con) { die("Connection failed: " . mysqli_connect_error()); }
3. Buat file bernama index.php
Jika tidak ingin penggunaan online, anda dapat mendownload
jquery ui css,
jquery, dan
jquery ui js
sesuai link pada file index.php berikut.
Buatlah file index.php dengan kode sebagai berikut :
<html> <head> <title>Cara Membuat Export Data CSV dengan PHP</title> <!-- jQuery UI CSS --> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"> <!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <!-- jQuery UI JS --> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script> $(document).ready(function(){ // From datepicker $("#from_date").datepicker({ dateFormat: 'yy-mm-dd', changeYear: true, onSelect: function (selected) { var dt = new Date(selected); dt.setDate(dt.getDate() + 1); $("#to_date").datepicker("option", "minDate", dt); } }); // To datepicker $("#to_date").datepicker({ dateFormat: 'yy-mm-dd', changeYear: true, onSelect: function (selected) { var dt = new Date(selected); dt.setDate(dt.getDate() - 1); $("#from_date").datepicker("option", "maxDate", dt); } }); }); </script> </head> <body> <div > <form method='post' action='download.php'> <!-- Datepicker --> <input type='text' class='datepicker' placeholder="Dari Tanggal" name="from_date" id='from_date' readonly> <input type='text' class='datepicker' placeholder="Sampai Tanggal" name="to_date" id='to_date' readonly> <!-- Export button --> <input type='submit' value='Export' name='Export'> </form> <table border='1' style='border-collapse:collapse;'> <tr> <th>ID</th> <th>Nama Karyawan</th> <th>Gaji</th> <th>Jenis Kelamin</th> <th>Kota</th> <th>Email</th> <th>Tanggal Bergabung</th> </tr> <?php include "config.php"; $query = "SELECT * FROM csv_karyawan ORDER BY id asc"; $result = mysqli_query($con,$query); while($row = mysqli_fetch_assoc($result)){ $id = $row['id']; $nama = $row['nama']; $gaji = $row['gaji']; $jenis_kelamin = $row['jenis_kelamin']; $kota = $row['kota']; $email = $row['email']; $tanggal_bergabung = $row['tanggal_bergabung']; ?> <tr> <td><?= $id; ?></td> <td><?= $nama; ?></td> <td><?= $gaji; ?></td> <td><?= $jenis_kelamin; ?></td> <td><?= $kota; ?></td> <td><?= $email; ?></td> <td><?= $tanggal_bergabung; ?></td> </tr> <?php } ?> </table> </div> </body> </html>
4. Buatlah File untuk aksi export php (download.php)
<?php <?php include "config.php"; $filename = 'karyawan_'.time().'.csv'; // POST values $from_date = $_POST['from_date']; $to_date = $_POST['to_date']; // Select query $query = "SELECT * FROM csv_karyawan ORDER BY id asc"; if(isset($_POST['from_date']) && isset($_POST['to_date'])){ $query = "SELECT * FROM csv_karyawan where tanggal_bergabung between '".$from_date."' and '".$to_date."' ORDER BY id asc"; } $result = mysqli_query($con,$query); $karyawan_arr = array(); // file creation $file = fopen($filename,"w"); // Header row - Remove this code if you don't want a header row in the export file. $karyawan_arr = array("ID","Nama","Gaji","Jenis Kelamin","Kota","Email","Tanggal Bergabung"); while($row = mysqli_fetch_assoc($result)){ $id = $row['id']; $nama = $row['nama']; $gaji = $row['gaji']; $jenis_kelamin = $row['jenis_kelamin']; $kota = $row['kota']; $email = $row['email']; $tanggal_bergabung = $row['tanggal_bergabung']; // Write to file $karyawan_arr = array($id,$nama,$gaji,$jenis_kelamin,$kota,$email,$tanggal_bergabung); fputcsv($file,$karyawan_arr); } fclose($file); // download header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=$filename"); header("Content-Type: application/csv; "); readfile($filename); // deleting file unlink($filename); exit(); ?>
Demikianlah Tutorial Export CSV. Semoga bermanfaat